package com.yifeng.dao;

import com.yifeng.model.User;
import com.yifeng.model.User;

import java.sql.SQLException;
import java.util.List;


public interface UserDao {


    boolean deleteById(Integer userId);
    /*
    负责人：未知

    功能：根据用户名和密码查询用户信息，主要用于用户登录验证

    参数：userName - 用户名，password - 加密后的密码

    返回值：匹配的用户对象，未找到返回null
    */


    User findByUsernameAndPassword(String userName, String password) throws SQLException;


    /*
    负责人：未知

    功能：检查用户名是否已存在，主要用于用户注册时的重复性校验

    参数：userName - 待检查的用户名

    返回值：用户名存在返回true，不存在返回false
    */

    boolean existsByUsername(String userName) throws SQLException;



    /*
    负责人：未知

    功能：插入新用户记录，主要用于用户注册功能

    参数：user - 包含用户信息的User对象

    返回值：插入成功返回true，失败返回false
    */

    boolean insert(User user) throws SQLException;




    /*
    负责人：未知

    功能：分页查询所有用户记录，支持用户管理界面的分页展示

    参数：offset - 数据偏移量，pageSize - 每页记录数

    返回值：用户对象列表
    */


    List<User> findAll() throws SQLException;



    /*
    负责人：未知

    功能：按角色分页查询用户，支持按角色筛选的用户管理

    参数：role - 用户角色，offset - 数据偏移量，pageSize - 每页记录数

    返回值：指定角色的用户对象列表
    */


    List<User> findByRolePaginated(String role, int offset, int pageSize) throws SQLException;



    /*
    负责人：未知

    功能：根据用户ID删除用户记录，实现用户管理中的删除功能

    参数：userId - 用户唯一标识ID

    返回值：删除成功返回true，失败返回false
    */




}